package com.class06.config;

import com.class06.ioc02.Clothes;
import com.class06.ioc02.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JavaConfig {


    //    创建一个T恤对象，并交给Spring容器管理
    @Bean("shirt")
    public Clothes getClothes() {
        Clothes clothes = new Clothes();
        clothes.setClothesName("T恤");
        clothes.setPrice(99.9);
        return clothes;
    }


    @Bean("pants")
    public Clothes getClothes1() {
        Clothes clothes = new Clothes();
        clothes.setClothesName("裤子");
        clothes.setPrice(100.9);
        return clothes;
    }


    //    配置人类对象，并交给Spring容器管理

//        处理Bean依赖关系 ：
//        方式1：直接调用，在一个有@Bean注解方法中，调用另一个有@Bean注解的方法
    @Bean
    public Person getPerson() {

        Person person = new Person();
        person.setName("张三");

        person.setClothes(getClothes1());
        return person;

    }


//    方式2：通过形参传入的方式,通过参数传递时，存在多个组件，形参名需要和组件id一致


    @Bean
    public Person getPerson2(Clothes shirt){
        Person person = new Person();
        person.setName("李四");
        person.setClothes(shirt);
        return person;
    }


}
